class Solution {  
public:  
    int sumOddLengthSubarrays(vector<int>& arr) {  
        int n = arr.size();  
        vector<int> prefix_sum(n + 1, 0); // 创建前缀和数组  
        for (int i = 0; i < n; ++i) {  
            prefix_sum[i + 1] = prefix_sum[i] + arr[i]; // 计算前缀和  
        }  
        int res = 0;  
        for (int i = 0; i < n; ++i) {  
            for (int sz = 1; sz <= n - i; sz += 2) { // 注意这里使用 sz <= n - i，避免越界  
                res += prefix_sum[i + sz] - prefix_sum[i]; // 使用前缀和计算子数组和  
            }  
        }  
        return res;  
    }  
};